#include <iostream>
#include <list>
using namespace std;

namespace ex
{
	template<class T>
	struct list_node
	{
		list_node<T>* _next;
		list_node<T>* _prev;
		T _data;
		list_node(const T& x=T())
			:_next(nullptr)
			,_prev(nullptr)
			,_data(x)
		{}
	};

	template<class T,class Ref,class Ptr>
	struct _list_iterator
	{
		typedef _list_iterator<T, Ref, Ptr> self;
		typedef list_node<T> node;

	};
}

int main()
{
	list<int> l1;
	list<int> l2(4, 100);
	list<int> l3{ 1,2,3,4,3,2,1, };
	for (auto& l : l3)
	{
		cout << l << " ";
	}
	cout << endl;
	auto it = l3.begin();
	while (it != l3.end())
	{
		cout << *it << " ";
		it++;
	}
	return 0;
}